Home
Draw     Tour     Drawings
To save your drawings, Log In   Pricing & Signup   Help  

Developer API

We recognize that Dabbleboard will be even more useful to users when integrated with other services, so we're offering this developer API. Now you can easily include Dabbleboard in your own service.
Step 1: Get a developer account
Step 2: Make API calls from your server
Step 3: Embed HTML

Developer_servers

Figure 1: Communication between your server, Dabbleboard's server and user's browser

Step 1: Get a developer account

Visit the Account page to generate a developer key. Review the Terms of Service.

Step 2: Make API calls from your server

Your server should make API calls to Dabbleboard's API servers to create users and drawings:

Developer_namespace

Figure 2: Namespaces for dev_id > user_id > drawing_id

You can control access to user accounts and drawings using user_key's and drawing_key's, which are like passphrases. API calls are made using http requests with parameters, and responses are returned in XML. E.g. you can obtain a list of all drawings using the following request (replace values of dev_id and other parameters with your own ones):

http://api.dabbleboard.com/api/list_drawings?dev_id=billgates&dev_key=abcdefgh

The API Admin Control Panel allows one to manually perform the API calls. Developers may find it handy when testing their code. Non-developers can use it to take advantage of the API, without having to learn how to program.

API functions

All functions
Parameter Description
dev_id Developer ID, same as your login at Dabbleboard.
dev_key Developer key, which you generated in Step 1.
signature Optional, use instead of dev_key; provides added security by never sending dev_key in plain text. Change the option to require signatures on your Account page. To compute the signature:
(i) Sort parameters in dictionary order. E.g. for create_user: {user_id="john", user_key="black", dev_id="billgates"} => {dev_id="billgates", user_id="john", user_key="black"}
(ii) Concatenate parameter values. "billgatesjohnblack"
(iii) Append the dev_key at the end. "billgatesjohnblack"+dev_key => "billgatesjohnblackabcdefgh"
(iv) Compute the hex MD5 hash. MD5("billgatesjohnblackabcdefgh") => "9f24a0c6f5eb6cdf54e3ebdad8a989d1"
Sample response:
<result>
<status>pass</status>
</result>
create_user  method: POST
Parameter Description
user_id Unique ID (alphanumeric) for user being created
user_key Key (up to 64 characters) to control access to user's library. We recommend using at least an MD5 hash to create keys.
list_users  method: GET
No additional parameters
Sample response:
<result>
<user><user_id>john</user_id><user_key>abcdefgh123</user_key></user>
<user><user_id>tim</user_id><user_key>abc</user_key></user>
<status>pass</status>
</result>
update_user  method: POST
Parameter Description
user_id User ID for user being updated
user_key New key value.
delete_user  method: POST
Parameter Description
user_id User ID for user being deleted; drawings created by user are also deleted
create_drawing  method: POST
Parameter Description
user_id User ID that drawing is created under
drawing_id Unique ID (unsigned integer) for drawing being created
drawing_key Key (up to 64 characters) to control access to drawing. We recommend using at least an MD5 hash to create keys.
copy_user_id Optional, use if creating copy. Source drawing's user ID
copy_drawing_id Optional, use if creating copy. Source drawing's drawing ID
list_drawings  method: GET
No additional parameters
Sample response:
<result>
<drawing><user_id>john</user_id><drawing_id>0</drawing_id><drawing_key>0000</drawing_key></drawing>
<drawing><user_id>john</user_id><drawing_id>1</drawing_id><drawing_key>1111</drawing_key></drawing>
<drawing><user_id>tim</user_id><drawing_id>0</drawing_id><drawing_key>00000000</drawing_key></drawing>
<drawing><user_id>tim</user_id><drawing_id>1</drawing_id><drawing_key>11112222</drawing_key></drawing>
<status>pass</status>
</result>
update_drawing  method: POST
Parameter Description
user_id User ID that drawing is created under
drawing_id Drawing ID for drawing being updated
drawing_key New key value.
delete_drawing  method: POST
Parameter Description
user_id User ID that drawing is created under
drawing_id Drawing ID for drawing being deleted

Step 3: Embed HTML

Instantiate Dabbleboard in your webpages using html like this (replace values of dev_id and other parameters with your own ones):

<iframe width="640" height="480" style="border:none" src=
"http://api.dabbleboard.com/api/iframe?dev_id=billgates&user_id=john&user_key=black&drawing_user_id=tim&drawing_id=1&drawing_key=1111222&width=640&height=480"
></iframe>

Parameter Description
width Width of the embedded swf. The swf will automatically lay out the toolbar buttons for any width. Minimum value = 600
height Height of the embedded swf. Minimum value = 400
dev_id Developer ID, same as your login at Dabbleboard
user_id Unique ID (alphanumeric) for user; determines which user's library is loaded.
user_key Key (up to 64 characters) to control access to user's library.
drawing_user_id User ID that drawing is created under. E.g. if John and Tim want to collaborate over one of Tim's drawings, Tim's HTML code will have user_id=drawing_user_id="tim" but John's will have {user_id="john", drawing_user_id="tim"}
drawing_id Unique ID (unsigned integer) for drawing
drawing_key Key (up to 64 characters) to control access to drawing.
hide_lib_pane Specify "yes" to hide personal library pane, drawing name, etc. Optional, default = "no". Hide library pane for a result similar to the old API, or if you're creating a whiteboard on a public webpage with no user authentication.

Please contact us at partner@dabbleboard.com for any questions regarding the developer API. We're happy to also discuss your needs for customization or for running Dabbleboard on your own servers.